perm filename READ.LSP[206,LSP] blob
sn#381604 filedate 1978-09-18 generic text, type T, neo UTF8
(DEFPROP READ (
READB
READA
PRINDOT
PRINA
PRINLIS
PRINB
REV1
)READFNS)
(DEFUN READB (U)
(COND ((EQ (CAR U) 'LP) (CAR (READA (CDR U) NIL)))
(T (CAR U))))
(DEFUN READA (U L)
(COND ((NULL U) (CONS (REV1 L 'ERROR) NIL))
((EQ (CAR U) 'RP) (CONS (REVERSE L) (CDR U)))
((EQ (CAR U) 'LP)
((LAMBDA (W) (READA (CDR W) (CONS (CAR W) L)))
(READA (CDR U) NIL)))
((EQ (CAR U) 'DOT)
((LAMBDA (W) (CONS (REV1 L (CAAR W)) (CDR W)))
(READA (CDR U) NIL)))
(T (READA (CDR U) (CONS (CAR U) L)))))
(DEFUN PRINDOT (E) (PRINA E NIL))
(DEFUN PRINA (E L)
(COND ((ATOM E) (CONS E L))
(T (CONS 'LP
(PRINA (CAR E)
(CONS 'DOT
(PRINA (CDR E)
(CONS 'RP L))))))))
(DEFUN PRINLIS (E) (PRINB E NIL))
(DEFUN PRINB (E L)
(COND ((ATOM E) (CONS E L))
(T (CONS 'LP
(COND ((NULL (CDR E))
(PRINB (CAR E) (CONS 'RP L)))
((ATOM (CDR E))
(PRINB (CAR E)
(CONS 'DOT
(CONS (CDR E)
(CONS 'RP
L)))))
(T (PRINB (CAR E)
(CDR (PRINB (CDR E) L)))))))))
(DEFUN REV1 (U V)
(COND ((NULL U) V) (T (REV1 (CDR U) (CONS (CAR U) V)))))